package com.framework.service;

import com.baomidou.mybatisplus.service.IService;
import com.framework.entity.ter.TerDistribu;
import com.framework.entity.ter.TerTerminalInfo;
import com.framework.view.DisRecordDto;

import java.util.List;

/**
 * 功能描述: 终端分配接口
 * @author ck
 * @date 2018/8/28 19:46
 */
public interface DistribuService extends IService<TerDistribu> {

	/**
	 * 查询终端所属人
	 * @param sn 终端号
	 * @return
	 */
	Long queryTerminalOwn(String sn);

	/**
	 * 根据sn查询分配记录
	 * @param sn
	 * @return
	 */
	List<DisRecordDto> queryDisRecordList(String sn);

	/**
	 * 根据终端号和代理商id查询
	 * @param sn
	 * @param agentId
	 * @return
	 */
	TerDistribu queryDistribu(String sn,Long agentId);

	/**
	 * 插入分配信息
	 * @param sn
	 * @param agentId
	 * @param acceptId
	 */
	void insertDistribu(String sn,Long agentId,Long acceptId);

	/**
	 * 修改接受
	 * @param sn
	 * @param agentId
	 */
	void updateAccept(String sn,Long agentId);

	/**
	 * 回退机器至agentId
	 * @param sn
	 * @param agentId
	 */
    void rebackTerminal(String sn, Long agentId);

	/**
	 * 查询分配
	 * @param sn
	 * @param agentId
	 * @return
	 */
	TerDistribu queryDistribuByAgentId(String sn, Long agentId);

	/**
	 * 分配机器
	 * @param sn
	 * @param agentId
	 * @param deptId
	 */
	void disTerminal(String sn, Long agentId,Long deptId);

	/**
	 * 接收机器
	 */
	void receiveTerminal();

	/**
	 * 回拨机器至上一级
	 * @param sn
	 * @param agentId
	 */
	void rebackTerminalToUpper(String sn, Long agentId);


	/**
	 * 处理分配信息,后台处理订单时使用
	 * @param terminalList
	 * @param agentId
	 * @param deptId
	 */
	void handleDistribu(List<TerTerminalInfo> terminalList, Long agentId, Long deptId);


	/**
	 * 后台导入终端时加入分配信息
	 * @param terlist 终端列表
	 * @param agentId
	 */
	void insertDisList(List<TerTerminalInfo> terlist, Long agentId);

	/**
	 * 处理新加入得机器
	 * @param agentId
	 * @param info
	 */
	void handleNewSn(Long agentId, TerTerminalInfo info);
}

